package com.zhijian.medical.dao.local;

import com.zhijian.medical.entity.po.LocationUpdateVo;
import com.zhijian.medical.entity.po.PhLocation;
import com.zhijian.medical.entity.vo.response.LocationVo;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author HCG
 * @version 1.0
 * @date 2021/7/21
 */
@Mapper
@Component
public interface PhLocationMapper {

    /**
     * 主键查询
     *
     * @param id
     * @return
     */
    PhLocation selectByPrimaryKey(Long id);

    /**
     * 按照主键删除
     *
     * @param id
     */
    void deleteByPrimaryKey(Long id);

    /**
     * 新增
     *
     * @param phLocation
     * @return
     */
    Long insert(PhLocation phLocation);

    /**
     * 更改
     *
     * @param phLocation
     * @return
     */
    boolean update(PhLocation phLocation);

    /**
     * 修改名称
     *
     * @param locationUpdateVo
     * @return
     */
    boolean updateName(LocationUpdateVo locationUpdateVo);

    /**
     * 列表，返回LocationVo
     *
     * @param parentId 父id，可为null，null的时候查询全部
     * @return
     */
    List<LocationVo> selectListByParentId(@Param("parentId") Long parentId);

    /**
     * 根据设备唯一码来找设备位置
     *
     * @param msSn
     * @return
     */
    String selectNameByDeviceMsSn(@Param("msSn") String msSn);

    /**
     * 根据设备唯一码来找设备位置ID
     *
     * @param msSn
     * @return
     */
    Long selectLocationIdByDeviceMsSn(@Param("msSn") String msSn);

    /**
     * 搜摄像机所在的位置集合
     *
     * @param cameraType
     * @return
     */
    List<LocationVo> selectListByCameraType(@Param("cameraType") Byte cameraType);

}
